import os
from dotenv import load_dotenv

# 加载 .env 文件
load_dotenv()

# 项目根目录
ROOT_PATH = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))

## 数据库配置
# 使用SQLite作为关系型数据库存储
DATABASE_URL = os.getenv("DATABASE_URL", f"sqlite:///{os.path.join(ROOT_PATH, 'data', 'llm_knowledge.db')}")
# ChromaDB配置 (可根据需要调整)
CHROMA_PERSIST_DIR = os.getenv("CHROMA_PERSIST_DIR", os.path.join(ROOT_PATH, "data", "chroma_storage"))

# LLM配置 - 默认选择使用本地模型
API_TYPE = os.getenv("API_TYPE", "local")  # 'local' 或 'openai'


# 本地模型缓存目录
LOCAL_MODEL_CACHE_PATH = os.getenv("LOCAL_MODEL_CACHE_PATH", os.path.join(ROOT_PATH, "local_models", "cache"))

## 本地嵌入模型配置 - 使用阿里千问嵌入模型
# Qwen3-Embedding系列提供0.6B、4B和8B三种参数规模，这里使用轻量级的0.6B版本，适合本地部署
LOCAL_EM_NAME = os.getenv("LOCAL_EM_NAME", "qwen/Qwen3-Embedding-0.6B")
# 本地嵌入模型下载路径
LOCAL_EM_PATH = os.getenv("LOCAL_EM_PATH", os.path.join(ROOT_PATH, "local_models", "qwen3-embedding-0.6b"))

## 本地大模型配置 - 使用阿里千问大语言模型
# Qwen/Qwen3-Next-80B-A3B-Instruct版本
LOCAL_LLM_NAME = os.getenv("LOCAL_LLM_NAME", "Qwen/Qwen3-Next-80B-A3B-Instruct")
# 本地大模型下载路径
LOCAL_LLM_PATH = os.getenv("LOCAL_LLM_PATH", os.path.join(ROOT_PATH, "local_models", "qwen3-next-80b-a3b-instruct"))

# 大模型API配置（可选，如果需要使用 OpenAI API）
OPENAI_API_KEY = os.getenv("OPENAI_API_KEY", "")
OPENAI_EM = os.getenv("OPENAI_EM", "text-embedding-ada-002")
OPENAI_LLM = os.getenv("OPENAI_LLM", "gpt-3.5-turbo")

# 方舟SDK 配置（可选，如果需要使用方舟 SDK）
ARK_API_KEY = os.getenv("ARK_API_KEY", "")
ARK_EM = os.getenv("ARK_EM", "doubao-embedding-text-240715")
ARK_LLM = os.getenv("ARK_LLM", "deepseek-v3-1-250821")

# 用户信息
USERNAME = os.getenv("USERNAME", "runway2025")
PASSWORD = os.getenv("PASSWORD", "runway5321pokemon")

# 服务器配置
HOST = "0.0.0.0"
PORT = 8000
DEBUG = True
